/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.adsi.vista;

import com.adsi.logica.LogicaTipoUsuarioLocal;
import com.adsi.modelo.TiposUsuarios;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.primefaces.component.commandbutton.CommandButton;
import org.primefaces.component.inputtext.InputText;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author Estudiante
 */
@ManagedBean(name = "tipoUsuariosVista")
@RequestScoped
public class TiposUsuariosVista {

    @EJB
    private LogicaTipoUsuarioLocal logicaTipoUsuarioLocal;

    private InputText txtCodigo;
    private InputText txtNombre;
    private TiposUsuarios selectedUsuario;
    private List<TiposUsuarios> listaTiposU;
    private CommandButton btnRegistrarTipoU;
    private CommandButton btnModificarTipoU;
    private CommandButton btnEliminarTipoU;
    private CommandButton btnLimpiarTipoU;

    /**
     * Creates a new instance of TiposUsuariosVista
     */
    public TiposUsuariosVista() {

    }

    public LogicaTipoUsuarioLocal getLogicaTiposUsuarios() {
        return logicaTipoUsuarioLocal;
    }

    public void setLogicaTiposUsuarios(LogicaTipoUsuarioLocal logicaTiposUsuarios) {
        this.logicaTipoUsuarioLocal = logicaTiposUsuarios;
    }

    public InputText getTxtCodigo() {
        return txtCodigo;
    }

    public void setTxtCodigo(InputText txtCodigo) {
        this.txtCodigo = txtCodigo;
    }

    public InputText getTxtNombre() {
        return txtNombre;
    }

    public void setTxtNombre(InputText txtNombre) {
        this.txtNombre = txtNombre;
    }

    public TiposUsuarios getSelectedUsuario() {
        return selectedUsuario;
    }

    public void setSelectedUsuario(TiposUsuarios selectedUsuario) {
        this.selectedUsuario = selectedUsuario;
    }

    public List<TiposUsuarios> getListaTiposU() {
        if (listaTiposU == null) {
            try {
                listaTiposU = logicaTipoUsuarioLocal.consultar();
            } catch (Exception ex) {
                Logger.getLogger(TiposUsuariosVista.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        return listaTiposU;
    }

    public void setListaTiposU(List<TiposUsuarios> listaTiposU) {
        this.listaTiposU = listaTiposU;
    }

    public CommandButton getBtnRegistrarTipoU() {
        return btnRegistrarTipoU;
    }

    public void setBtnRegistrarTipoU(CommandButton btnRegistrarTipoU) {
        this.btnRegistrarTipoU = btnRegistrarTipoU;
    }

    public CommandButton getBtnModificarTipoU() {
        return btnModificarTipoU;
    }

    public void setBtnModificarTipoU(CommandButton btnModificarTipoU) {
        this.btnModificarTipoU = btnModificarTipoU;
    }

    public CommandButton getBtnEliminarTipoU() {
        return btnEliminarTipoU;
    }

    public void setBtnEliminarTipoU(CommandButton btnEliminarTipoU) {
        this.btnEliminarTipoU = btnEliminarTipoU;
    }

    public CommandButton getBtnLimpiarTipoU() {
        return btnLimpiarTipoU;
    }

    public void setBtnLimpiarTipoU(CommandButton btnLimpiarTipoU) {
        this.btnLimpiarTipoU = btnLimpiarTipoU;
    }

    public void funcion_limpiar() {
        txtCodigo.setValue("");
        txtNombre.setValue("");

        btnRegistrarTipoU.setDisabled(false);
        btnModificarTipoU.setDisabled(true);
        btnEliminarTipoU.setDisabled(true);
        FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Informacion", "El formulario se limpio con exito"));

    }

    public void funcion_registrar() {
        try {
            TiposUsuarios tipoU = new TiposUsuarios();
            Long codigo= Long.parseLong(txtCodigo.getValue().toString());
            tipoU.setTusuCodigo(codigo);
            tipoU.setTusuNombre(txtNombre.getValue().toString());

            logicaTipoUsuarioLocal.registrar(tipoU);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Informacion", "El tipo Usuario Se registro con exito"));
        } catch (Exception ex) {
            Logger.getLogger(TiposUsuariosVista.class.getName()).log(Level.SEVERE, null, ex);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", ex.getMessage()));
        }
       listaTiposU= null;
        funcion_limpiar();
    }

     public void funcion_modificar() {
        try {
            TiposUsuarios tipoU = new TiposUsuarios();
            Long codigo= Long.parseLong(txtCodigo.getValue().toString());
            tipoU.setTusuCodigo(codigo);
            tipoU.setTusuNombre(txtNombre.getValue().toString());

            logicaTipoUsuarioLocal.modificar(tipoU);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Informacion", "El tipo Usuario Se registro con exito"));
        } catch (Exception ex) {
            Logger.getLogger(TiposUsuariosVista.class.getName()).log(Level.SEVERE, null, ex);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", ex.getMessage()));
        }
       listaTiposU= null;
        funcion_limpiar();
    }
     
       public void funcion_eliminar() {
        try {
            TiposUsuarios tipoU = new TiposUsuarios();
            tipoU.setTusuCodigo(Long.parseLong(txtCodigo.getValue().toString()));
            logicaTipoUsuarioLocal.eliminar(tipoU);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Informacion", "El Tipo Usuario se Eliminó con exito"));
        } catch (Exception ex) {
            Logger.getLogger(TiposUsuariosVista.class.getName()).log(Level.SEVERE, null, ex);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", ex.getMessage()));
        }
        listaTiposU = null;
        funcion_limpiar();
    }
     public void funcion_seleccionar(SelectEvent event) {
        TiposUsuarios tipoSeleccionado = (TiposUsuarios) event.getObject();
        txtCodigo.setValue(tipoSeleccionado.getTusuCodigo());
        txtNombre.setValue(tipoSeleccionado.getTusuNombre());

        txtCodigo.setDisabled(true);
        btnRegistrarTipoU.setDisabled(true);
        btnModificarTipoU.setDisabled(false);
        btnEliminarTipoU.setDisabled(false);

    }

    
}
